Make the gtk-color-scheme setting work.
authorMatthias Clasen <mclasen@redhat.com>
Mon, 12 Dec 2005 15:48:43 +0000 (15:48 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 12 Dec 2005 15:48:43 +0000 (15:48 +0000)
2005-12-12  Matthias Clasen  <mclasen@redhat.com>

Make the gtk-color-scheme setting work.

* gtk/gtksettings.h:
* gtk/gtksettings.c (_gtk_settings_get_color_hash): Add a getter
that takes care of initializing the color hash if it is not
already there.

* gtk/gtkrc.c (gtk_rc_color_scheme_changed, gtk_rc_context_get):
And use it here.

ChangeLog
ChangeLog.pre-2-10
gtk/gtkrc.c
gtk/gtksettings.c
gtk/gtksettings.h

index 92646c291a1f04092220dbeb65588024c831e6e3..439422275533fa8af5ce401c1efe8d470e2633d7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2005-12-12  Matthias Clasen  <mclasen@redhat.com>
+
+       Make the gtk-color-scheme setting work.
+       
+       * gtk/gtksettings.h: 
+       * gtk/gtksettings.c (_gtk_settings_get_color_hash): Add a getter
+       that takes care of initializing the color hash if it is not 
+       already there.  
+
+       * gtk/gtkrc.c (gtk_rc_color_scheme_changed, gtk_rc_context_get): 
+       And use it here.        
+
 2005-12-10  Matthias Clasen  <mclasen@redhat.com>
 
        * gdk/gdk.c (gdk_parse_args): Warn if parsing fails,
index 92646c291a1f04092220dbeb65588024c831e6e3..439422275533fa8af5ce401c1efe8d470e2633d7 100644 (file)
@@ -1,3 +1,15 @@
+2005-12-12  Matthias Clasen  <mclasen@redhat.com>
+
+       Make the gtk-color-scheme setting work.
+       
+       * gtk/gtksettings.h: 
+       * gtk/gtksettings.c (_gtk_settings_get_color_hash): Add a getter
+       that takes care of initializing the color hash if it is not 
+       already there.  
+
+       * gtk/gtkrc.c (gtk_rc_color_scheme_changed, gtk_rc_context_get): 
+       And use it here.        
+
 2005-12-10  Matthias Clasen  <mclasen@redhat.com>
 
        * gdk/gdk.c (gdk_parse_args): Warn if parsing fails,
index 33396bb6df50a6277fab834b0147ecacf3abf558..6eff19be737af093b097773a6c98c9262f9f5fdd 100644 (file)
@@ -596,8 +596,7 @@ gtk_rc_color_scheme_changed (GtkSettings  *settings,
       if (context->color_hash)
         g_hash_table_unref (context->color_hash);
 
-      context->color_hash = g_object_get_data (G_OBJECT (settings),
-                                               "gtk-color-scheme");
+      context->color_hash = _gtk_settings_get_color_hash (settings);
       if (context->color_hash)
         g_hash_table_ref (context->color_hash);
 
@@ -629,8 +628,7 @@ gtk_rc_context_get (GtkSettings *settings)
                    "gtk-color-scheme", &context->colors,
                    NULL);
 
-      context->color_hash = g_object_get_data (G_OBJECT (settings),
-                                               "gtk-color-scheme");
+      context->color_hash = _gtk_settings_get_color_hash (settings);
       if (context->color_hash)
         g_hash_table_ref (context->color_hash);
 
index dbce1b5fed470e77982245b27943b189fc491f7c..8c00026d3ca4ddd5eb51475517181b892dd83a5b 100644 (file)
@@ -1590,12 +1590,17 @@ gtk_color_table_from_string (const gchar *str)
       while (*p == ' ')
         p++;
 
-      s = strchr (p, '\n');
-      if (s)
-        {
-          *s = '\0';
-          s++;
-        }
+      s = p;
+      while (*s) 
+       {
+         if (*s == '\n')
+           {
+             *s = '\0';
+             s++;
+             break;
+           }
+         s++;
+       }
 
       if (!gdk_color_parse (p, &color))
         {
@@ -1633,5 +1638,17 @@ settings_update_color_scheme (GtkSettings *settings)
   g_free (colors);
 }
 
+GHashTable *
+_gtk_settings_get_color_hash (GtkSettings *settings)
+{
+  if (g_object_get_data (G_OBJECT (settings),
+                        "gtk-color-scheme") == NULL)
+    settings_update_color_scheme (settings);
+
+  return (GHashTable *) g_object_get_data (G_OBJECT (settings),
+                                          "gtk-color-scheme");
+}
+
+
 #define __GTK_SETTINGS_C__
 #include "gtkaliasdef.c"
index f058e00a6853ad5f3da13674efe6bcaa5013ab3a..a1e0f3d780302d14a774e31990e676b23d8e0dc7 100644 (file)
@@ -126,6 +126,7 @@ gboolean        _gtk_settings_parse_convert       (GtkRcPropertyParser parser,
                                                       const GValue       *src_value,
                                                       GParamSpec         *pspec,
                                                       GValue             *dest_value);
+GHashTable*         _gtk_settings_get_color_hash      (GtkSettings *settings);
 
 
 G_END_DECLS